import User from "../../../utils/user"
import msg from "../../../utils/msg"
import { bindAdmin, login } from "../../../utils/request/api"
var user = new User;
// pages/user/login/login.ts
Page({

  /**
   * 页面的初始数据
   */
  data: {
    canIUse: wx.canIUse('button.open-type.getUserInfo'),
    adminInfo: {
      name: '' as string,
      code: '' as string,
    },
    show: false,
    topHeight: 0,
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad() {
    this.setMiddle();
  },
  //让按钮居中
  setMiddle(){
    let that = this
    let query = wx.createSelectorQuery().in(this)
    query.select('.card').boundingClientRect()
    query.exec(res => {
      let cardHeight = res[0].height
      let windowHeight = wx.getSystemInfoSync().windowHeight
      let topHeight = windowHeight/2 - cardHeight + 50
      this.setData({ topHeight: topHeight })
    });
  },

  Login:async function () {
    wx.login({
      success: async function(res){
        if (res.code) {
          //发起网络请求
          msg.Loading('登陆中');
          user.Login(res.code).then((res:any) => {
            if(res.code==200){
              wx.navigateBack();
              msg.show('登陆成功', '');
            }
            else if(res.code==201){
              //没有绑定用户信息 跳转到绑定页面
              wx.redirectTo({
                url:"/pages/user/updateInfo/updateInfo?openid="+res.data.openid,
              })
            }
            msg.hideLoading();
          })
        } else {
          console.log('登录失败！' + res.errMsg)
        }
      }
    })
  },
  //绑定管理员账号
  bindAdmin() {
    this.setData({
      show: true,
    })
  },
  bindAdminSubmit() {
    let self = this;
    let adminInfo = this.data.adminInfo;
    if (adminInfo.code == '' || adminInfo.name == '') {
      msg.show('请填写完整信息', '');
      return;
    };
    wx.login({
      success(res) {
        if (res.code) {
          //发起网络请求
          msg.Loading('绑定中');
          bindAdmin({ name: adminInfo.name, code: adminInfo.code, wx_code: res.code })
            .then(async (res: any) => {
              msg.hideLoading();
              switch (res.data.code) {
                case '200':
                  await msg.show('绑定成功！', '接下来请通过一键登录进行登陆'); break;
                case '201':
                  await msg.show('已经绑定过了', '请直接登陆'); break;
                case '501':
                  await msg.show('您已经绑定了学号为:' + res.data.data.code + '的管理员账号', '更多处理请联系后台管理员'); break;
                case '502':
                  await msg.show('未找到此管理员账号', '若有问题请联系后台管理员处理'); break;
                case '503':
                  await msg.show('学号为:' + adminInfo.code + '的管理员账号已经被绑定了', '更多处理请联系后台管理员'); break;
              }
            });
          self.setData({
            show: false,
          })
        } else {
          console.log('绑定失败！' + res.errMsg)
        }
      }
    })

  },
  getInput(e: any) {
    let index: string = e.currentTarget.dataset.index;
    let adminInfo = this.data.adminInfo;
    if (index == 'name')
      adminInfo.name = e.detail.value;
    if (index == 'code')
      adminInfo.code = e.detail.value;
    this.setData({
      adminInfo: adminInfo,
    })
  },
  onClose() {
    this.setData({ show: false });
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})